package DTO;

import java.io.Serializable;
import java.sql.Date;



/**
 * 
 * Classe représentant une annonce.
 * 
 * @author Valentin Brémond
 * 
 * @version 1.0
 *
 */
public class AnnonceDTO implements Serializable
{
	/**
	 * Nécessaire pour la sérialisation.
	 * À modifier lors de chaque changement de version.
	 */
	private static final long serialVersionUID = 100L;

	/**
	 * L'ID de l'annonce.
	 */
	private int id;
	
	/**
	 * L'ID du vendeur qui a créé l'annonce.
	 */
	private int id_vendeur;
	
	/**
	 * La date de création de l'annonce.
	 */
	private Date date;
	
	/**
	 * Son titre.
	 */
	private String titre;
	
	/**
	 * Le contenu de l'annonce.
	 */
	private String contenu;
	
	/**
	 * Le département de l'annonce (ex : 76, 2A).
	 */
	private String departement;
	
	/**
	 * Permet de savoir si l'annonce est un emploi ou un stage (true) ou pas (false).
	 */
	private boolean emploi_stage;
	
	/**
	 * Permet de savoir si l'annonce vend un objet ou un service (true) ou pas (false).
	 */
	private boolean objet_service;
	
	
	
	// CONSTRUCTEUR
	
	
	
	/**
	 * Constructeur par défaut.
	 * <p>
	 * <u>À noter :</u> l'ID de l'annonce dans ce cas vaut -1, ce qui permet de facilement vérifier que l'objet n'est pas valide.
	 */
	public AnnonceDTO()
	{
		super();
		
		this.id = -1;
		this.id_vendeur = -1;
		this.date = new Date(1L);
		this.titre = "Non défini";
		this.contenu = "Non défini";
		this.departement = "Non défini";
		this.emploi_stage = false;
		this.objet_service = false;
	}
	
	
	
	/**
	 * Constructeur par valeurs.
	 * 
	 * @param id L'ID de l'annonce. Cet ID sera automatiquement changé lors de l'insertion de l'annonce dans la BDD.
	 * @param id_vendeur L'ID du vendeur associé à l'annonce.
	 * @param date La date de l'annonce.
	 * @param titre Le titre de l'annonce.
	 * @param contenu Le contenu de l'annonce.
	 * @param departement Le département de l'annonce;.
	 * @param emploi_stage Si l'annonce concerne un emploi ou un stage : true ; sinon : false.
	 * @param objet_service Si l'annonce concerne un bien ou un service : true ; sinon : false.
	 */
	public AnnonceDTO(int id, int id_vendeur, Date date, String titre, String contenu, String departement, boolean emploi_stage, boolean objet_service)
	{
		super();
		
		this.id = id;
		this.id_vendeur = id_vendeur;
		this.date = date;
		this.titre = titre;
		this.contenu = contenu;
		this.departement = departement;
		this.emploi_stage = emploi_stage;
		this.objet_service = objet_service;
	}

	
	
	// GETTERS ET SETTERS
	
	
	
	public int getId()
	{
		return id;
	}



	public void setId(int id)
	{
		this.id = id;
	}



	public int getId_vendeur()
	{
		return id_vendeur;
	}



	public void setId_vendeur(int id_vendeur)
	{
		this.id_vendeur = id_vendeur;
	}



	public Date getDate()
	{
		return date;
	}



	public void setDate(Date date)
	{
		this.date = date;
	}



	public String getTitre()
	{
		return titre;
	}



	public void setTitre(String titre)
	{
		this.titre = titre;
	}



	public String getContenu()
	{
		return contenu;
	}



	public void setContenu(String contenu)
	{
		this.contenu = contenu;
	}



	public String getDepartement()
	{
		return departement;
	}



	public void setDepartement(String departement)
	{
		this.departement = departement;
	}



	public boolean isEmploi_stage()
	{
		return emploi_stage;
	}



	public void setEmploi_stage(boolean emploi_stage)
	{
		this.emploi_stage = emploi_stage;
	}



	public boolean isObjet_service()
	{
		return objet_service;
	}



	public void setObjet_service(boolean objet_service)
	{
		this.objet_service = objet_service;
	}
}
